home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / apps / database / postgres / postgre3.z / postgre3 / src / lib / H / access / funcindex.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-08-27  |  973 b   |  35 lines

  1. /* $Header: /private/postgres/src/lib/H/access/RCS/funcindex.h,v 1.2 1991/10/18 08:22:21 mer Exp $ */
  2.  
  3. #ifndef _FUNC_INDEX_INCLUDED_
  4. #define _FUNC_INDEX_INCLUDED_
  5.  
  6. #include "tmp/postgres.h"
  7.  
  8. typedef struct {
  9.     int        nargs;
  10.     oid        procOid;
  11.     NameData    funcName;
  12. } FuncIndexInfo;
  13.  
  14. typedef FuncIndexInfo    *FuncIndexInfoPtr;
  15.  
  16. /*
  17.  * some marginally useful macro definitions
  18.  */
  19. #define FIgetname(FINFO) (&((FINFO)->funcName.data[0]))
  20. #define FIgetnArgs(FINFO) (FINFO)->nargs
  21. #define FIgetProcOid(FINFO) (FINFO)->procOid
  22.  
  23. #define FIsetname(FINFO,name) strncpy(&((FINFO)->funcName.data[0]), name, 16)
  24. #define FIsetnArgs(FINFO, numargs) ((FINFO)->nargs = numargs)
  25. #define FIsetProcOid(FINFO, id) ((FINFO)->procOid = id)
  26.  
  27. #define FIisFunctionalIndex(FINFO) (FINFO->procOid != InvalidObjectId)
  28.  
  29. #define FIcopyFuncInfo(TO, FROM) \
  30.     TO->nargs = FROM->nargs; \
  31.     TO->procOid = FROM->procOid; \
  32.     strncpy(&((TO)->funcName.data[0]), &((FROM)->funcName.data[0]), 16)
  33.  
  34. #endif _FUNC_INDEX_INCLUDED_
  35.